Smart contracts can be used to create a reliable and interactive record of a transaction between two parties. We propose a modern reimplementation of ‘composing contracts’, initially described by Peyton Jones et al., which can be used as a declarative language for the creation of Ethereum smart contracts that model real-world financial transactions.